package com.yan.service.criteria.query;

/**
 * where 查询条件
 *
 * @Author WangYan
 * @Date 2020/10/14 23:43
 */
public class Where<T> {

    /**
     * 数据库字段
     */
    private String sqlColumn;

    private Mark Mark;

    private T value;

    public enum Mark {
        // sql 相等
        equal(),
        // sql !=
        notEqual(),
        // sql like (% value %)
        like(),
        // sql like (value %)
        likeRight(),
        // sql in
        in(),
        // sql not in
        notIn(),
        // sql 大于
        gt(),
        // sql大于等于
        gte(),
        // sql小于
        lt(),
        // sql小于等于
        lte(),
        // sql在什么之间
        between(),
        // sql为空
        empty()
        ;
    }

    public Where(String sqlColumn, Mark Mark, T value) {
        this.sqlColumn = sqlColumn;
        this.Mark = Mark;
        this.value = value;
    }

    public String getSqlColumn() {
        return sqlColumn;
    }

    public void setSqlColumn(String sqlColumn) {
        this.sqlColumn = sqlColumn;
    }

    public Mark getMark() {
        return Mark;
    }

    public void setMark(Mark mark) {
        this.Mark = mark;
    }

    public T getValue() {
        return value;
    }

    public void setValue(T value) {
        this.value = value;
    }
}
